home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / doors_2 / postd13.zip / POSTDOOR.SLT < prev   
Text File  |  1993-03-11  |  8KB  |  284 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //                                                                           //
  3. //                       Postdoor Salt Script 1.3                            //
  4. //                                                                           //
  5. //                        - use with ACCESS                                  //
  6. //                                                                           //
  7. // Supports error checking on failed file transfers.  Deletes the dowload    //
  8. // packet on failed download.                                                //
  9. //                                                                           //
  10. // Uses a config file to enter POSTLINK mail directory and ID number         //
  11. //                                                                           //
  12. // Now checks for POSTDOOR doing message packing and hangs up.               //
  13. //                                                                           //
  14. // Added config option to leave online even during message packs             //
  15. //                                                                           //
  16. // Now deletes upload stuff after successful upload finishes                 //
  17. //                                                                           //
  18. ///////////////////////////////////////////////////////////////////////////////
  19. STR LIST[11];
  20.  
  21. STR STRING[150],
  22.     MAIL[64],
  23.     POSTID[4],
  24.     STAYON[1],
  25.     UP_SAVE[64],
  26.     DOWN_SAVE[64];
  27.  
  28. INT STAT,
  29.     TRANSFER,
  30.     stage,
  31.     T1,
  32.     T2,
  33.     T3,
  34.     T4,
  35.     T5,
  36.     T6,
  37.     T7,
  38.     TMARK,
  39.     STOP;
  40.  
  41.  
  42. //////////////////////////////////////////////////////////////////////////////
  43.  
  44. MAIN ()
  45.     {
  46.      read_cfg_file();
  47.  
  48.      COPYSTR(_UP_DIR,UP_SAVE,0,64);
  49.      COPYSTR(_DOWN_DIR,DOWN_SAVE,0,64);
  50.      COPYSTR(MAIL,_DOWN_DIR,0,64);
  51.      COPYSTR(MAIL,_UP_DIR,0,64);
  52.      _zmod_auto=0;
  53.      CPUTS ("postdoor");
  54.      cputs ("^M");
  55.  
  56.      stage = POSTLINK();
  57.      if (stage == 0)
  58.        {
  59.         cleanup();
  60.        }
  61.      else if (stage == -1)
  62.        {
  63.         cleanup();
  64.        }
  65.      else if (stage == -2)
  66.        {
  67.         cleanup();
  68.        }
  69.      else if (stage == -3)
  70.        {
  71.         cleanup();
  72.        }
  73.     }
  74. //////////////////////////////////////////////////////////////////////////////
  75.  
  76. POSTLINK ()
  77.     {
  78.      str filename[12];
  79.  
  80.       WHILE (CARRIER())
  81.       {
  82.             T1 = TRACK ("Ready to receive PREAMBLE",0);
  83.             T2 = TRACK ("Ready to receive u",0);
  84.             T3 = TRACK ("Ready to send d",0);
  85.             t4 = track("space bar to stay online",0);
  86.             T5 = TRACK ("Done.",0);
  87.             t6 = track("Skipping pack of channel",0);
  88.             t7 = track("Packing channel",0);
  89.             TMARK = TIMER_START (6200);           // Wait up to 20 sec. for response
  90.             WHILE (NOT TIME_UP (TMARK))
  91.               {
  92.                update_term();
  93.                TERMINAL ();
  94.                STAT = TRACK_HIT (0);
  95.                IF (STAT == T1)
  96.                 {
  97.                   TRANSFER = 1;
  98.                   TRANSFER = SEND('Z',"PREAMBLE");
  99.                   if (transfer == -2)
  100.                     {
  101.                      return(-1);
  102.                     }
  103.                   else if (transfer == -1)
  104.                     {
  105.                     return(-1);
  106.                     }
  107.                   else
  108.                     {
  109.                      TRACK_FREE(T1);
  110.                     }
  111.                   
  112.                 }
  113.                ELSE IF (STAT == T2)
  114.                 {
  115.                  TRANSFER = 1;
  116.                  filename = "U";
  117.                  strcat(filename, POSTID);
  118.                  strcat(filename,".ZIP");
  119.                  TRANSFER = SEND ('Z',filename);
  120.                   if (transfer == -2)
  121.                     {
  122.                      return(-2);
  123.                     }
  124.                   else if (transfer == -1)
  125.                     {
  126.                     return(-2);
  127.                     }
  128.                   else
  129.                     {
  130.                      TRACK_FREE(T2);
  131.                      string = mail;
  132.                      strcat(string,filename);
  133.                      fdelete(string);
  134.  
  135.                      string = mail;
  136.                      filename = "U";
  137.                      strcat(filename, POSTID);
  138.                      strcat(string,filename);
  139.                      fdelete(string);
  140.  
  141.                      string = mail;
  142.                      strcat(string,"PREAMBLE");
  143.                      fdelete(string);
  144.                     }
  145.  
  146.                 }
  147.                ELSE IF (STAT == T3)
  148.                 {
  149.                  TRANSFER = 1;
  150.                  filename = "D";
  151.                  strcat(filename, POSTID);
  152.                  strcat(filename,".ZIP");
  153.                  TRANSFER = RECEIVE ('Z',filename);
  154.                   if (transfer == -2)
  155.                     {
  156.                      return(-3);
  157.                     }
  158.                   else if (transfer == -1)
  159.                     {
  160.                      string = mail;
  161.                      strcat(string,filename);
  162.                      fdelete(string);
  163.                      return(-3);
  164.                     }
  165.                   else
  166.                     {
  167.                      TRACK_FREE(T3);
  168.                     }
  169.                 }
  170.                ELSE IF (STAT == T4)
  171.                 {
  172.                   cputs (" ");
  173.                   track_free(t4);
  174.                  
  175.                 }
  176.                ELSE IF (STAT == T5)
  177.                 {
  178.                   track_free(t5);
  179.                   return(0);
  180.                  
  181.                 }
  182.                ELSE IF (STAT == T6)
  183.                 {
  184.                   if (STAYON=="y")
  185.                     {
  186.                      track_free(t6);
  187.                      track_free(t7);
  188.                      return(0);
  189.                     }
  190.                   
  191.                   track_free(t6);
  192.                   track_free(t7);
  193.                   HANGUP ();
  194.                   return(0);
  195.                  
  196.                 }
  197.                ELSE IF (STAT == T7)
  198.                 {
  199.                   if (STAYON=="y")
  200.                     {
  201.                      track_free(t6);
  202.                      track_free(t7);
  203.                      return(0);
  204.                     }
  205.                   
  206.                   track_free(t6);
  207.                   track_free(t7);
  208.                   HANGUP ();
  209.                   return(0);
  210.                  
  211.                 }
  212.               }
  213.            }
  214.          IF (TIME_UP (TMARK))
  215.           {
  216.            HANGUP ();
  217.            update_term();
  218.           }
  219.          TIMER_FREE (TMARK);
  220.  
  221.     }
  222.  
  223. /////////////////////////////////////////////////////////////////////////////
  224. //                      CLEANUP
  225. ////////////////////////////////////////////////////////////////////////////
  226.  
  227. cleanup()
  228.   {
  229.    COPYSTR(UP_SAVE,_UP_DIR,0,64);
  230.    COPYSTR(DOWN_SAVE,_DOWN_DIR,0,64);
  231.    _zmod_auto=1;
  232.   }
  233.  
  234. ////////////////////////////////////////////////////////////////////////////
  235. //         Read Configuration File
  236. ////////////////////////////////////////////////////////////////////////////
  237.  
  238. read_cfg_file()
  239.   {
  240.     str s[80];
  241.  int f, stat;
  242.  
  243.  s = _telix_dir;
  244.  strcat(s, "POSTDOOR.CFG");
  245.  
  246.  f = fopen(s, "r");
  247.  if (!f)
  248.   {
  249.    clear_scr();
  250.    pstraxy ("Can't open ",8,12,15);
  251.    prints(s);
  252.    delay(40);
  253.    return -1;
  254.   }
  255.  
  256.  stat = fgets(s, 80, f);
  257.  if (stat == -1)
  258.   goto got_error;
  259.  MAIL = s;
  260.  
  261.  stat = fgets(s, 80, f);
  262.  if (stat == -1)
  263.   goto got_error;
  264.  POSTID = s;
  265.  
  266.  
  267.  stat = fgets(s, 80, f);
  268.  if (stat == -1)
  269.   goto got_error;
  270.  STAYON = s;
  271.  STAYON = (STAYON | 0X20);
  272.  
  273.  fclose(f);
  274.  return 1;
  275.  
  276. // jump here if error
  277.  
  278.  got_error:
  279.   fclose(f);
  280.   return -1;
  281.  
  282.   }
  283.  
  284.